import { updatePaperMetadata } from "@autoscholar/publisher"; import { z } from "zod"; import { handler, json, parseBody } from "@/lib/server/api"; import { db } from "@/lib/server/db"; import { requireAdmin } from "@/lib/server/session"; export const runtime = "nodejs"; export const POST = handler(async (req, { params }) => { const sess = await requireAdmin(req, { mutation: true }); const { id } = (await params) as { id: string }; const body = await parseBody( req, z.object({ title: z.string().min(3).max(300).optional(), keywords: z.array(z.string().min(1).max(60)).min(2).max(12).optional(), abstract: z.string().min(50).max(5000).optional(), note: z.string().min(5).max(500), }), ); const { note, ...patch } = body; return json(await updatePaperMetadata(db(), id, patch, { id: sess.userId, ip: sess.ip }, note)); });